00010000 Tydzień Informatyki Barbara Błoszyk,    14 listopada 2022

00010000 lub, jak kto woli, XVI Tydzień Informatyki często jest tajemnicą dla osób spoza klas IKA. Na czym tak naprawdę polega ten wyjątkowy tydzień października? Już śpieszymy z wyjaśnieniem!

 „Tydzień Informatyki” w tym roku odbył się w naszej szkole już po raz szesnasty. Jest to wydarzenie ważne dla uczniów klas informatycznych, a równocześnie zagadkowe dla niewtajemniczonej reszty. Na tydzień w październiku ósemkowi informatycy wydają się znikać – są, ale jakoby ich nie było. Z tego względu uczniom klas nieinformatycznych bez wątpienia nasuwa się pytanie: co uczniowie z profilu informatycznego właściwie robią w trakcie tego tajemniczego tygodnia?

Za zamkniętymi drzwiami sal informatycznych…

 Odpowiedź na to pytanie okazuje się być bardzo prosta: programujemy! Będąc bardziej konkretnym, każdego dnia tygodnia informatyki otrzymujemy nowe zadania, podzielone na trzy stopnie trudności, od najtrudniejszych nazywane: A, B oraz C. Pojawiły się również zadania oznaczone jako X, jednakże ich poziom trudności był na tyle wysoki, że w większości przypadków niewiele osób podjęło się chociażby ich rozwiązania - a gdy ja patrzyłam na ich treść, miałam wrażenie, że ich poziom można by momentami porównać do poziomu matury rozszerzonej z polskiego z perspektywy matfiza.

Zadania na “Tygodniu Informatyki”

 Jeżeli chodzi o wygląd samych zadań, to mimo tego, że potrafią być one przeróżne, to zazwyczaj są zbudowane w ten sam sposób: składają się z treści oraz przykładowego wejścia i wyjścia. W treści opisane jest, co ma zrobić nasz kod, często pod postacią zabawnej historyjki lub scenki. Następnie mamy podane przykładowe wejście – dane, które będziemy podawać naszemu programowi, oraz wyjście, czyli jaki wynik ma on „wypluć”. Dane te pozwalają na lepsze zrozumienie tego, co dokładnie ma zrobić nasz program. Na podstawie tych informacji należy opracować, jak nasz program ma działać, a następnie trzeba go oczywiście napisać. Gdy już wydaje nam się, że nasza odpowiedź jest prawidłowa, wysyłamy gotowy kod do tzw. sprawdzarki, czyli programu, który ponownie go testuje i przyznaje nam odpowiednią punktację w skali od 0 do 100. Jeżeli nasz program działa perfekcyjnie, otrzymamy 100 punktów – z kolei za wyniki błędne punkty są odpowiednio odejmowane (zazwyczaj jest to o 10 punktów mniej za każdy test z błędną odpowiedzią, jednak jest to zależne od zadania). Jeżeli dojdzie do sytuacji, w której program zwraca wynik niepoprawny, sprawdzarka nas o tym informuje, a my musimy cofnąć się do kodu i znaleźć błąd, co bardzo często jest najbardziej uciążliwą częścią rozwiązywania zadań.

Zadania z perspektywy ucznia

 Wydawać by się mogło, że w pracy w taki sposób nie ma nic ciekawego czy emocjonującego. Jak można spędzić w ten sposób cały tydzień? W rzeczywistości w czasie rozwiązywania tych zadań niektórzy uczniowie odczuwali całą gamę emocji: od rozpaczy, gdy sprawdzarka „działający” kod po raz kolejny ocenia na 0, po euforię, gdy po długich męczarniach program nareszcie udało się zmusić do posłuszeństwa. W sali 204 zostały zawieszone nawet „kartki bezpieczeństwa” służące do wyładowania nadmiaru emocji, z których wszystkie zostały wykorzystane w czasie dwóch dni przez osoby sfrustrowane niedziałającym kodem. Jednak myślę, że ostatecznie wielu uczniów uważa taki tok pracy za bardzo przyjemny i mimo wszystkich przeszkód wspominamy rozwiązywanie zadań z tygodnia informatyki z uśmiechem.

Ale czy to wszystko?

 Tydzień Informatyki to nie tylko same zadania. Klasy informatyczne uczestniczą też w wykładach, prowadzonych przez pracowników UAM i Politechniki Poznańskiej. Zagadnienia nie są ze sobą ściśle związane, oprócz tego, że dotyczą oczywiście informatyki. W tym roku tematyka była przeróżna, począwszy od Sztucznej Inteligencji, aż po Data Science na przykładzie Autokorekty i… Żabki?

O optymalizacji programów

 Ale może po kolei. Wykład o „Algorytmach przeszukiwań dużych przestrzeni w atrakcyjnych zastosowaniach” przedstawił nam dr inż. Andrzej Urbański. Wykład dotyczył pracy w “dużych przestrzeniach”, w których generowanie odpowiedzi może trwać o wiele dłużej, niż byśmy sobie tego życzyli. Przez duże przestrzenie mam na myśli np. skomplikowane polecenia, dużą rozpiętość zadania, czy też po prostu rozmiar plików, na których pracujemy. Algorytmy dla dużych przestrzeni pozwalają na rozwiązanie wielu problemów, od generowania liczb pitagorejskich, przez minimalizację kosztu zakupów, po wyznaczanie drogi komiwojażera. Na koniec zostaliśmy pożegnani piosenką “Być Programistą” i mimo że nie jest to płatna współpraca, serdecznie zachęcamy do przesłuchania.

“Problem Trwałego Małżeństwa” i dopasowywanie zbiorów

 Następny był wykład prof. dr. hab. Stanisława Gawiejnowicza pt. „Parę słów o skojarzeniach, czyli o tym, jak umówić się z właściwą osobą”. Wszystko opierało się na Problemie Trwałego Małżeństwa czyli zagadnieniu, które polega na jak najlepszym dopasowaniu dwóch zbiorów, gdzie każdy element ma ustalone preferencje odnośnie do wyboru “kandydata” z drugiego zbioru. Może to brzmieć skomplikowanie, ale tak naprawdę polega głównie na kompromisie. Duża część tego problemu została przedstawiona w książce “Stable Marriage and Its Relation to Other Combinatorial Problems” Donalda Knutha, o której wspominał prelegent (tytuł w rzeczywistości jest jeszcze dłuższy, sprawdźcie sami).

Algorytm autokorekty. Jak to w ogóle działa?

 Zastanawialiście się kiedyś, jak działa autokorekta? Na to pytanie odpowiedział nam dr Bartłomiej Przybylski w wykładzie “Data Science”. Wszystko oczywiście zawierało motyw naszego ulubionego sklepu z zielonym płazem. Jeżeli myśleliście, że autokorekta jest trudnym algorytmem, to… mieliście jak najbardziej rację. No chyba że do łatwych zaliczamy czytanie tekstów literackich, przypisanie każdemu słowu wartości w zależności od tego, jak często występuje, uaktualnienie tej wartości w zależności od liczby operacji, jakie trzeba wykonać, żeby mógł zostać podany zamiennik do słowa poprawianego. Uprzedzając pytania niektórych - nie, nie dostaliśmy darmowych żappsów.

Sztuczna Inteligencja i jej osiągnięcia

 Ostatnim i, jak dla mnie, najbardziej interesującym wykładem, był wykład dr. inż. Tomasza Łukaszewskiego, „Sztuczna inteligencja: sukcesy i zagrożenia”. Zacznijmy może od tematu gier planszowych. Wiedzieliście, że jeżeli o nie chodzi, to jesteśmy daleko w tyle za AI*? Ostatni raz, kiedyś byliśmy - jako ludzie - lepsi od sztucznej inteligencji w tej dziedzinie, miał miejsce w 2016 roku. Lee Sedolem “uratował honor ludzkości”, wygrywając jedną rundę, na pięć w grze z programem AlphaGo. Bonus dla wszystkich pań będących w mniejszości na mat-fizach: Wiedziałyście, że pierwszym programistą była Ada Lovelace? Ale o tym może innym razem ;) Jeżeli zaś chodzi o zagrożenia. Coraz więcej profesji może być wykonywanych przez AI. Co prawda zawsze zostaną dla nas stanowiska wymagające emocji i empatii, takie jak nauczyciel czy terapeuta. Miejmy taką nadzieję.

* AI - z ang. Artificial Intelligence. Sztuczna Inteligencja

Barbara Błoszyk 2A, Maja Lipska 1A